home *** CD-ROM | disk | FTP | other *** search
/ Micromanía: 150 Juegos 2010 / 150Juegos_16.iso / Shareware / Shape Smash / shape-smash.swf / scripts / Box2D / Collision / _ho219.as < prev    next >
Encoding:
Text File  |  2010-05-14  |  16.7 KB  |  443 lines

  1. package Box2D.Collision
  2. {
  3.    import Box2D.Collision.Shapes.*;
  4.    import Box2D.Common.*;
  5.    import Box2D.Common.Math.*;
  6.    
  7.    public class _ho219
  8.    {
  9.       private static var s_p1s:Array = [new b2Vec2(),new b2Vec2(),new b2Vec2()];
  10.       
  11.       private static var s_p2s:Array = [new b2Vec2(),new b2Vec2(),new b2Vec2()];
  12.       
  13.       private static var s_points:Array = [new b2Vec2(),new b2Vec2(),new b2Vec2()];
  14.       
  15.       private static var gPoint:_wl793 = new _wl793();
  16.       
  17.       public static var g_GJK_Iterations:int = 0;
  18.       
  19.       public function _ho219()
  20.       {
  21.          super();
  22.       }
  23.       
  24.       public static function _jy683(param1:b2Vec2, param2:b2Vec2, param3:_hx306, param4:_ni781, param5:_hx306, param6:_ni781) : Number
  25.       {
  26.          var _loc7_:int = 0;
  27.          var _loc8_:int = 0;
  28.          _loc7_ = param3.m_type;
  29.          _loc8_ = param5.m_type;
  30.          if(_loc7_ == _hx306.e_circleShape && _loc8_ == _hx306.e_circleShape)
  31.          {
  32.             return _ci393(param1,param2,param3 as _vy532,param4,param5 as _vy532,param6);
  33.          }
  34.          if(_loc7_ == _hx306.e_polygonShape && _loc8_ == _hx306.e_circleShape)
  35.          {
  36.             return _xf510(param1,param2,param3 as _bs125,param4,param5 as _vy532,param6);
  37.          }
  38.          if(_loc7_ == _hx306.e_circleShape && _loc8_ == _hx306.e_polygonShape)
  39.          {
  40.             return _xf510(param2,param1,param5 as _bs125,param6,param3 as _vy532,param4);
  41.          }
  42.          if(_loc7_ == _hx306.e_polygonShape && _loc8_ == _hx306.e_polygonShape)
  43.          {
  44.             return _gb496(param1,param2,param3 as _bs125,param4,param5 as _bs125,param6);
  45.          }
  46.          return 0;
  47.       }
  48.       
  49.       public static function _ft289(param1:b2Vec2, param2:b2Vec2, param3:Array, param4:Array, param5:Array) : int
  50.       {
  51.          var _loc6_:b2Vec2 = null;
  52.          var _loc7_:b2Vec2 = null;
  53.          var _loc8_:b2Vec2 = null;
  54.          var _loc9_:b2Vec2 = null;
  55.          var _loc10_:b2Vec2 = null;
  56.          var _loc11_:b2Vec2 = null;
  57.          var _loc12_:Number = NaN;
  58.          var _loc13_:Number = NaN;
  59.          var _loc14_:Number = NaN;
  60.          var _loc15_:Number = NaN;
  61.          var _loc16_:Number = NaN;
  62.          var _loc17_:Number = NaN;
  63.          _loc6_ = param5[0];
  64.          _loc7_ = param5[1];
  65.          _loc8_ = param3[0];
  66.          _loc9_ = param3[1];
  67.          _loc10_ = param4[0];
  68.          _loc11_ = param4[1];
  69.          _loc12_ = -_loc7_.x;
  70.          _loc13_ = -_loc7_.y;
  71.          _loc14_ = _loc6_.x - _loc7_.x;
  72.          _loc15_ = _loc6_.y - _loc7_.y;
  73.          _loc16_ = Math.sqrt(_loc14_ * _loc14_ + _loc15_ * _loc15_);
  74.          _loc14_ /= _loc16_;
  75.          _loc15_ /= _loc16_;
  76.          _loc17_ = _loc12_ * _loc14_ + _loc13_ * _loc15_;
  77.          if(_loc17_ <= 0 || _loc16_ < Number.MIN_VALUE)
  78.          {
  79.             param1._kh737(_loc9_);
  80.             param2._kh737(_loc11_);
  81.             _loc8_._kh737(_loc9_);
  82.             _loc10_._kh737(_loc11_);
  83.             _loc6_._kh737(_loc7_);
  84.             return 1;
  85.          }
  86.          _loc17_ /= _loc16_;
  87.          param1.x = _loc9_.x + _loc17_ * (_loc8_.x - _loc9_.x);
  88.          param1.y = _loc9_.y + _loc17_ * (_loc8_.y - _loc9_.y);
  89.          param2.x = _loc11_.x + _loc17_ * (_loc10_.x - _loc11_.x);
  90.          param2.y = _loc11_.y + _loc17_ * (_loc10_.y - _loc11_.y);
  91.          return 2;
  92.       }
  93.       
  94.       public static function _xf510(param1:b2Vec2, param2:b2Vec2, param3:_bs125, param4:_ni781, param5:_vy532, param6:_ni781) : Number
  95.       {
  96.          var _loc7_:_oh327 = null;
  97.          var _loc8_:b2Vec2 = null;
  98.          var _loc9_:_wl793 = null;
  99.          var _loc10_:Number = NaN;
  100.          var _loc11_:Number = NaN;
  101.          var _loc12_:Number = NaN;
  102.          var _loc13_:Number = NaN;
  103.          var _loc14_:Number = NaN;
  104.          _loc9_ = gPoint;
  105.          _loc8_ = param5.m_localPosition;
  106.          _loc7_ = param6.R;
  107.          _loc9_.p.x = param6.position.x + (_loc7_.col1.x * _loc8_.x + _loc7_.col2.x * _loc8_.y);
  108.          _loc9_.p.y = param6.position.y + (_loc7_.col1.y * _loc8_.x + _loc7_.col2.y * _loc8_.y);
  109.          _loc10_ = _gb496(param1,param2,param3,param4,_loc9_,_ui293.b2XForm_identity);
  110.          _loc11_ = param5.m_radius - _kc225.b2_toiSlop;
  111.          if(_loc10_ > _loc11_)
  112.          {
  113.             _loc10_ -= _loc11_;
  114.             _loc12_ = param2.x - param1.x;
  115.             _loc13_ = param2.y - param1.y;
  116.             _loc14_ = Math.sqrt(_loc12_ * _loc12_ + _loc13_ * _loc13_);
  117.             _loc12_ /= _loc14_;
  118.             _loc13_ /= _loc14_;
  119.             param2.x -= _loc11_ * _loc12_;
  120.             param2.y -= _loc11_ * _loc13_;
  121.          }
  122.          else
  123.          {
  124.             _loc10_ = 0;
  125.             param2.x = param1.x;
  126.             param2.y = param1.y;
  127.          }
  128.          return _loc10_;
  129.       }
  130.       
  131.       public static function _ci393(param1:b2Vec2, param2:b2Vec2, param3:_vy532, param4:_ni781, param5:_vy532, param6:_ni781) : Number
  132.       {
  133.          var _loc7_:_oh327 = null;
  134.          var _loc8_:b2Vec2 = null;
  135.          var _loc9_:Number = NaN;
  136.          var _loc10_:Number = NaN;
  137.          var _loc11_:Number = NaN;
  138.          var _loc12_:Number = NaN;
  139.          var _loc13_:Number = NaN;
  140.          var _loc14_:Number = NaN;
  141.          var _loc15_:Number = NaN;
  142.          var _loc16_:Number = NaN;
  143.          var _loc17_:Number = NaN;
  144.          var _loc18_:Number = NaN;
  145.          var _loc19_:Number = NaN;
  146.          var _loc20_:Number = NaN;
  147.          _loc7_ = param4.R;
  148.          _loc8_ = param3.m_localPosition;
  149.          _loc9_ = param4.position.x + (_loc7_.col1.x * _loc8_.x + _loc7_.col2.x * _loc8_.y);
  150.          _loc10_ = param4.position.y + (_loc7_.col1.y * _loc8_.x + _loc7_.col2.y * _loc8_.y);
  151.          _loc7_ = param6.R;
  152.          _loc8_ = param5.m_localPosition;
  153.          _loc11_ = param6.position.x + (_loc7_.col1.x * _loc8_.x + _loc7_.col2.x * _loc8_.y);
  154.          _loc12_ = param6.position.y + (_loc7_.col1.y * _loc8_.x + _loc7_.col2.y * _loc8_.y);
  155.          _loc13_ = _loc11_ - _loc9_;
  156.          _loc14_ = _loc12_ - _loc10_;
  157.          _loc15_ = _loc13_ * _loc13_ + _loc14_ * _loc14_;
  158.          _loc16_ = param3.m_radius - _kc225.b2_toiSlop;
  159.          _loc17_ = param5.m_radius - _kc225.b2_toiSlop;
  160.          _loc18_ = _loc16_ + _loc17_;
  161.          if(_loc15_ > _loc18_ * _loc18_)
  162.          {
  163.             _loc19_ = Math.sqrt(_loc15_);
  164.             _loc13_ /= _loc19_;
  165.             _loc14_ /= _loc19_;
  166.             _loc20_ = _loc19_ - _loc18_;
  167.             param1.x = _loc9_ + _loc16_ * _loc13_;
  168.             param1.y = _loc10_ + _loc16_ * _loc14_;
  169.             param2.x = _loc11_ - _loc17_ * _loc13_;
  170.             param2.y = _loc12_ - _loc17_ * _loc14_;
  171.             return _loc20_;
  172.          }
  173.          if(_loc15_ > Number.MIN_VALUE * Number.MIN_VALUE)
  174.          {
  175.             _loc19_ = Math.sqrt(_loc15_);
  176.             _loc13_ /= _loc19_;
  177.             _loc14_ /= _loc19_;
  178.             param1.x = _loc9_ + _loc16_ * _loc13_;
  179.             param1.y = _loc10_ + _loc16_ * _loc14_;
  180.             param2.x = param1.x;
  181.             param2.y = param1.y;
  182.             return 0;
  183.          }
  184.          param1.x = _loc9_;
  185.          param1.y = _loc10_;
  186.          param2.x = param1.x;
  187.          param2.y = param1.y;
  188.          return 0;
  189.       }
  190.       
  191.       public static function _nw526(param1:b2Vec2, param2:b2Vec2, param3:Array, param4:Array, param5:Array) : int
  192.       {
  193.          var _loc6_:b2Vec2 = null;
  194.          var _loc7_:b2Vec2 = null;
  195.          var _loc8_:b2Vec2 = null;
  196.          var _loc9_:b2Vec2 = null;
  197.          var _loc10_:b2Vec2 = null;
  198.          var _loc11_:b2Vec2 = null;
  199.          var _loc12_:b2Vec2 = null;
  200.          var _loc13_:b2Vec2 = null;
  201.          var _loc14_:b2Vec2 = null;
  202.          var _loc15_:Number = NaN;
  203.          var _loc16_:Number = NaN;
  204.          var _loc17_:Number = NaN;
  205.          var _loc18_:Number = NaN;
  206.          var _loc19_:Number = NaN;
  207.          var _loc20_:Number = NaN;
  208.          var _loc21_:Number = NaN;
  209.          var _loc22_:Number = NaN;
  210.          var _loc23_:Number = NaN;
  211.          var _loc24_:Number = NaN;
  212.          var _loc25_:Number = NaN;
  213.          var _loc26_:Number = NaN;
  214.          var _loc27_:Number = NaN;
  215.          var _loc28_:Number = NaN;
  216.          var _loc29_:Number = NaN;
  217.          var _loc30_:Number = NaN;
  218.          var _loc31_:Number = NaN;
  219.          var _loc32_:Number = NaN;
  220.          var _loc33_:Number = NaN;
  221.          var _loc34_:Number = NaN;
  222.          var _loc35_:Number = NaN;
  223.          var _loc36_:Number = NaN;
  224.          var _loc37_:Number = NaN;
  225.          var _loc38_:Number = NaN;
  226.          var _loc39_:Number = NaN;
  227.          var _loc40_:Number = NaN;
  228.          var _loc41_:Number = NaN;
  229.          _loc6_ = param5[0];
  230.          _loc7_ = param5[1];
  231.          _loc8_ = param5[2];
  232.          _loc9_ = param3[0];
  233.          _loc10_ = param3[1];
  234.          _loc11_ = param3[2];
  235.          _loc12_ = param4[0];
  236.          _loc13_ = param4[1];
  237.          _loc14_ = param4[2];
  238.          _loc15_ = _loc6_.x;
  239.          _loc16_ = _loc6_.y;
  240.          _loc17_ = _loc7_.x;
  241.          _loc18_ = _loc7_.y;
  242.          _loc19_ = _loc8_.x;
  243.          _loc20_ = _loc8_.y;
  244.          _loc21_ = _loc17_ - _loc15_;
  245.          _loc22_ = _loc18_ - _loc16_;
  246.          _loc23_ = _loc19_ - _loc15_;
  247.          _loc24_ = _loc20_ - _loc16_;
  248.          _loc25_ = _loc19_ - _loc17_;
  249.          _loc26_ = _loc20_ - _loc18_;
  250.          _loc27_ = -(_loc15_ * _loc21_ + _loc16_ * _loc22_);
  251.          _loc28_ = _loc17_ * _loc21_ + _loc18_ * _loc22_;
  252.          _loc29_ = -(_loc15_ * _loc23_ + _loc16_ * _loc24_);
  253.          _loc30_ = _loc19_ * _loc23_ + _loc20_ * _loc24_;
  254.          _loc31_ = -(_loc17_ * _loc25_ + _loc18_ * _loc26_);
  255.          _loc32_ = _loc19_ * _loc25_ + _loc20_ * _loc26_;
  256.          if(_loc30_ <= 0 && _loc32_ <= 0)
  257.          {
  258.             param1._kh737(_loc11_);
  259.             param2._kh737(_loc14_);
  260.             _loc9_._kh737(_loc11_);
  261.             _loc12_._kh737(_loc14_);
  262.             _loc6_._kh737(_loc8_);
  263.             return 1;
  264.          }
  265.          _loc33_ = _loc21_ * _loc24_ - _loc22_ * _loc23_;
  266.          _loc34_ = _loc33_ * (_loc15_ * _loc18_ - _loc16_ * _loc17_);
  267.          _loc36_ = _loc33_ * (_loc17_ * _loc20_ - _loc18_ * _loc19_);
  268.          if(_loc36_ <= 0 && _loc31_ >= 0 && _loc32_ >= 0 && _loc31_ + _loc32_ > 0)
  269.          {
  270.             _loc35_ = _loc31_ / (_loc31_ + _loc32_);
  271.             param1.x = _loc10_.x + _loc35_ * (_loc11_.x - _loc10_.x);
  272.             param1.y = _loc10_.y + _loc35_ * (_loc11_.y - _loc10_.y);
  273.             param2.x = _loc13_.x + _loc35_ * (_loc14_.x - _loc13_.x);
  274.             param2.y = _loc13_.y + _loc35_ * (_loc14_.y - _loc13_.y);
  275.             _loc9_._kh737(_loc11_);
  276.             _loc12_._kh737(_loc14_);
  277.             _loc6_._kh737(_loc8_);
  278.             return 2;
  279.          }
  280.          _loc37_ = _loc33_ * (_loc19_ * _loc16_ - _loc20_ * _loc15_);
  281.          if(_loc37_ <= 0 && _loc29_ >= 0 && _loc30_ >= 0 && _loc29_ + _loc30_ > 0)
  282.          {
  283.             _loc35_ = _loc29_ / (_loc29_ + _loc30_);
  284.             param1.x = _loc9_.x + _loc35_ * (_loc11_.x - _loc9_.x);
  285.             param1.y = _loc9_.y + _loc35_ * (_loc11_.y - _loc9_.y);
  286.             param2.x = _loc12_.x + _loc35_ * (_loc14_.x - _loc12_.x);
  287.             param2.y = _loc12_.y + _loc35_ * (_loc14_.y - _loc12_.y);
  288.             _loc10_._kh737(_loc11_);
  289.             _loc13_._kh737(_loc14_);
  290.             _loc7_._kh737(_loc8_);
  291.             return 2;
  292.          }
  293.          _loc38_ = _loc36_ + _loc37_ + _loc34_;
  294.          _loc38_ = 1 / _loc38_;
  295.          _loc39_ = _loc36_ * _loc38_;
  296.          _loc40_ = _loc37_ * _loc38_;
  297.          _loc41_ = 1 - _loc39_ - _loc40_;
  298.          param1.x = _loc39_ * _loc9_.x + _loc40_ * _loc10_.x + _loc41_ * _loc11_.x;
  299.          param1.y = _loc39_ * _loc9_.y + _loc40_ * _loc10_.y + _loc41_ * _loc11_.y;
  300.          param2.x = _loc39_ * _loc12_.x + _loc40_ * _loc13_.x + _loc41_ * _loc14_.x;
  301.          param2.y = _loc39_ * _loc12_.y + _loc40_ * _loc13_.y + _loc41_ * _loc14_.y;
  302.          return 3;
  303.       }
  304.       
  305.       public static function _fb133(param1:b2Vec2, param2:Array, param3:int) : Boolean
  306.       {
  307.          var _loc4_:Number = NaN;
  308.          var _loc5_:int = 0;
  309.          var _loc6_:b2Vec2 = null;
  310.          var _loc7_:Number = NaN;
  311.          var _loc8_:Number = NaN;
  312.          var _loc9_:Number = NaN;
  313.          var _loc10_:Number = NaN;
  314.          _loc4_ = 100 * Number.MIN_VALUE;
  315.          _loc5_ = 0;
  316.          while(_loc5_ < param3)
  317.          {
  318.             _loc6_ = param2[_loc5_];
  319.             _loc7_ = Math.abs(param1.x - _loc6_.x);
  320.             _loc8_ = Math.abs(param1.y - _loc6_.y);
  321.             _loc9_ = Math.max(Math.abs(param1.x),Math.abs(_loc6_.x));
  322.             _loc10_ = Math.max(Math.abs(param1.y),Math.abs(_loc6_.y));
  323.             if(_loc7_ < _loc4_ * (_loc9_ + 1) && _loc8_ < _loc4_ * (_loc10_ + 1))
  324.             {
  325.                return true;
  326.             }
  327.             _loc5_++;
  328.          }
  329.          return false;
  330.       }
  331.       
  332.       public static function _gb496(param1:b2Vec2, param2:b2Vec2, param3:*, param4:_ni781, param5:*, param6:_ni781) : Number
  333.       {
  334.          var _loc7_:b2Vec2 = null;
  335.          var _loc8_:Array = null;
  336.          var _loc9_:Array = null;
  337.          var _loc10_:Array = null;
  338.          var _loc11_:int = 0;
  339.          var _loc12_:Number = NaN;
  340.          var _loc13_:int = 0;
  341.          var _loc14_:int = 0;
  342.          var _loc15_:Number = NaN;
  343.          var _loc16_:Number = NaN;
  344.          var _loc17_:b2Vec2 = null;
  345.          var _loc18_:b2Vec2 = null;
  346.          var _loc19_:Number = NaN;
  347.          var _loc20_:Number = NaN;
  348.          var _loc21_:Number = NaN;
  349.          var _loc22_:Number = NaN;
  350.          var _loc23_:int = 0;
  351.          _loc8_ = s_p1s;
  352.          _loc9_ = s_p2s;
  353.          _loc10_ = s_points;
  354.          _loc11_ = 0;
  355.          param1._kh737(param3._py149(param4));
  356.          param2._kh737(param5._py149(param6));
  357.          _loc12_ = 0;
  358.          _loc13_ = 20;
  359.          _loc14_ = 0;
  360.          while(_loc14_ < _loc13_)
  361.          {
  362.             _loc15_ = param2.x - param1.x;
  363.             _loc16_ = param2.y - param1.y;
  364.             _loc17_ = param3._gd677(param4,_loc15_,_loc16_);
  365.             _loc18_ = param5._gd677(param6,-_loc15_,-_loc16_);
  366.             _loc12_ = _loc15_ * _loc15_ + _loc16_ * _loc16_;
  367.             _loc19_ = _loc18_.x - _loc17_.x;
  368.             _loc20_ = _loc18_.y - _loc17_.y;
  369.             _loc21_ = _loc15_ * _loc19_ + _loc16_ * _loc20_;
  370.             if(_loc12_ - _loc21_ <= 0.01 * _loc12_)
  371.             {
  372.                if(_loc11_ == 0)
  373.                {
  374.                   param1._kh737(_loc17_);
  375.                   param2._kh737(_loc18_);
  376.                }
  377.                g_GJK_Iterations = _loc14_;
  378.                return Math.sqrt(_loc12_);
  379.             }
  380.             switch(_loc11_)
  381.             {
  382.                case 0:
  383.                   _loc7_ = _loc8_[0];
  384.                   _loc7_._kh737(_loc17_);
  385.                   _loc7_ = _loc9_[0];
  386.                   _loc7_._kh737(_loc18_);
  387.                   _loc7_ = _loc10_[0];
  388.                   _loc7_.x = _loc19_;
  389.                   _loc7_.y = _loc20_;
  390.                   param1._kh737(_loc8_[0]);
  391.                   param2._kh737(_loc9_[0]);
  392.                   _loc11_++;
  393.                   break;
  394.                case 1:
  395.                   _loc7_ = _loc8_[1];
  396.                   _loc7_._kh737(_loc17_);
  397.                   _loc7_ = _loc9_[1];
  398.                   _loc7_._kh737(_loc18_);
  399.                   _loc7_ = _loc10_[1];
  400.                   _loc7_.x = _loc19_;
  401.                   _loc7_.y = _loc20_;
  402.                   _loc11_ = _ft289(param1,param2,_loc8_,_loc9_,_loc10_);
  403.                   break;
  404.                case 2:
  405.                   _loc7_ = _loc8_[2];
  406.                   _loc7_._kh737(_loc17_);
  407.                   _loc7_ = _loc9_[2];
  408.                   _loc7_._kh737(_loc18_);
  409.                   _loc7_ = _loc10_[2];
  410.                   _loc7_.x = _loc19_;
  411.                   _loc7_.y = _loc20_;
  412.                   _loc11_ = _nw526(param1,param2,_loc8_,_loc9_,_loc10_);
  413.             }
  414.             if(_loc11_ == 3)
  415.             {
  416.                g_GJK_Iterations = _loc14_;
  417.                return 0;
  418.             }
  419.             _loc22_ = -Number.MAX_VALUE;
  420.             _loc23_ = 0;
  421.             while(_loc23_ < _loc11_)
  422.             {
  423.                _loc7_ = _loc10_[_loc23_];
  424.                _loc22_ = _ui293._bk45(_loc22_,_loc7_.x * _loc7_.x + _loc7_.y * _loc7_.y);
  425.                _loc23_++;
  426.             }
  427.             if(_loc11_ == 3 || _loc12_ <= 100 * Number.MIN_VALUE * _loc22_)
  428.             {
  429.                g_GJK_Iterations = _loc14_;
  430.                _loc15_ = param2.x - param1.x;
  431.                _loc16_ = param2.y - param1.y;
  432.                _loc12_ = _loc15_ * _loc15_ + _loc16_ * _loc16_;
  433.                return Math.sqrt(_loc12_);
  434.             }
  435.             _loc14_++;
  436.          }
  437.          g_GJK_Iterations = _loc13_;
  438.          return Math.sqrt(_loc12_);
  439.       }
  440.    }
  441. }
  442.  
  443.